Sharing mobile applications between callers

ABSTRACT

Systems and methods for sharing of mobile applications between callers are provided. A telephone call connection may be provided between a first mobile device and a second mobile device. A selection may be received from a user of the first mobile device that indicates at least one application previously enabled for sharing. It may be detect that the second mobile device has also enabled sharing of the same application. The application may be executed on the first mobile device and the second mobile device. Further, any updated data related to the application may be automatically exchanged between the first mobile device and the second mobile device.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present patent application is a continuation and claims the prioritybenefit of U.S. patent application Ser. No. 14/309,117 filed Jun. 19,2014, which claims the priority benefit of U.S. provisional patentapplication 62/007,927 filed Jun. 4, 2014 and U.S. provisional patentapplication 62/007,858 filed Jun. 4, 2014, the disclosures of which areincorporated herein by reference.

BACKGROUND

1. Field of the Invention

The present invention generally relates to mobile applications operableon mobile devices. More specifically, the present invention relates tosharing mobile applications between callers.

2. Description of the Related Art

Mobile device software applications are a significant and growingportion of the smartphone industry. Mobile applications are designed torun on smartphones, tablet computers (including electronic readingdevices or e-readers), and other mobile devices. apps may be madeavailable by application developers through application distributionplatforms, many of which are typically operated by the owner of themobile operating system, such as the Apple® app Store^(SM), GooglePlay™, Windows® Store, and BlackBerry® app World™. Some apps areavailable for free, while others must be bought. Usually, such apps aredownloaded from the platform to a target device, such as an iPhone®,BlackBerry®, Android®, or Windows® phone, other mobile device, laptop,or desktop computer.

The more functions a mobile device has, the more useful it is to itsuser. Further, mobile device often used to multi-task (e.g., executingan apps during a telephone call). There is, however, currently no easyway for users to control a common application together (e.g.,concurrently view the exact same instance of an application and its dataat the same time). For example, a user may wish to perform certainapplication functions with another user, including editing anemail/note, searching for directions, or reviewing financial data.

Some social gaming applications allow for multiple users to exchangedata to view a game session with multiple users at the same time. Suchgame applications, however, are unable to be executed during a telephonecall. In addition, such game applications may be associated with adedicated game server that hosts the session, which some applicationdevelopers are unable or do not have the resources to provide. Further,sharing capabilities across multiple users may be somewhat tangential toa primary purpose of an application (e.g., providing directions via aMaps application). As such, many popular applications lack the abilityto be shared by multiple devices.

There is, therefore, a need in the art for improved systems and methodsfor enabling sharing of mobile applications between callers.

SUMMARY OF THE DISCLOSURE

Embodiments of the present invention include systems and methods forsharing of mobile applications between callers. A telephone callconnection may be provided between a first mobile device and a secondmobile device. A selection may be received from a user of the firstmobile device that indicates at least one application previously enabledfor sharing. It may be detect that the second mobile device has alsoenabled sharing of the same application. The application may be executedon the first mobile device and the second mobile device. Further, anyupdated data related to the application may be automatically exchangedbetween the first mobile device and the second mobile device.

Various embodiments may include methods for sharing of mobileapplications between callers. Such methods may include providing atelephone call connection between a first mobile device and a secondmobile device, receiving a selection from a user of the first mobiledevice that indicates at least one application previously enabled forsharing, executing instructions by a processor to detect that the secondmobile device has also enabled sharing of the at least one application,to execute the at least one application on the first mobile device andthe second mobile device, and to automatically exchange any updated datarelated to the at least one application between the first mobile deviceand the second mobile device.

Further embodiments may include apparatuses for sharing of mobileapplications between callers. Such apparatuses may include communicationcircuitry for providing a telephone call connection between a firstmobile device and a second mobile device, a user interface for receivinga selection from a user of the first mobile device that indicates atleast one application previously enabled for sharing, and a processorfor executing instructions stored in memory to detect that the secondmobile device has also enabled sharing of the at least one application,to execute the at least one application on the first mobile device andthe second mobile device, and to automatically exchange any updated datarelated to the at least one application between the first mobile deviceand the second mobile device.

Still further embodiments of the present invention may includenon-transitory computer-readable storage media, having embodied thereonprograms executable by processors to perform a method for sharing ofmobile applications between callers as described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

For the purpose of illustrating the invention, the drawings show aspectsof one or more embodiments of the invention. However, it should beunderstood that the present invention is not limited to the precisearrangements and instrumentalities shown in the drawings.

FIG. 1 illustrates an exemplary network environment in which a systemfor sharing mobile applications between callers may be implemented.

FIG. 2 is a diagram illustrating exemplary device architecture of anexemplary user device that may be used in a system for sharing mobileapplications between callers.

FIG. 3 is a block diagram that represents data sharing between userdevices in a system for sharing mobile applications between callers.

FIG. 4 is a diagram illustrating exemplary settings of an operatingsystem on a user device that may be used with a system for sharingmobile applications between callers.

FIG. 5 is a flowchart illustrating an exemplary method for sharingmobile applications between callers.

FIG. 6 is a flowchart illustrating an alternate method for sharingmobile applications between callers.

FIG. 7 illustrates a mobile device architecture that may be utilized toimplement the various features and processes described herein.

DETAILED DESCRIPTION

Embodiments of the present invention include systems and methods forsharing of mobile applications between callers. A telephone callconnection may be provided between a first mobile device and a secondmobile device. A selection may be received from a user of the firstmobile device that indicates at least one application previously enabledfor sharing. It may be detect that the second mobile device has alsoenabled sharing of the same application. The application may be executedon the first mobile device and the second mobile device. Further, anyupdated data related to the application may be automatically exchangedbetween the first mobile device and the second mobile device.

FIG. 1 illustrates an exemplary network environment 100 in which asystem for sharing mobile applications between callers may beimplemented. Several embodiments of the invention with reference to theappended drawings are now explained. While numerous details are setforth, it is understood that some embodiments of the invention may bepracticed without these details. In other instances, well-knowncircuits, structures, and techniques have not been shown in detail so asnot to obscure the understanding of this description.

Mobile device 1 a may be any handheld mobile communications device thatsupports a two-way voice conversation that may be part of a voice callor a video call, or any other communication system (e.g., Facetime orSkype videotelephone calls) known in the art, collectively referred toas a call that has been established between the user of the mobiledevice 1 a and other users (e.g., of mobile devices 1 b-c). Users mayuse any number of different electronic devices 1 a-c, such as generalpurpose computers, mobile phones, smartphones, personal digitalassistants (PDAs), portable computing devices (e.g., laptop, netbook,tablets), desktop computing devices, handheld computing device, or anyother type of computing device capable of communicating overcommunication network 25. User devices 1 a-c may also be configured toaccess data from other storage media, such as memory cards or diskdrives as may be appropriate in the case of downloaded services. Userdevice 1 a-c may include standard hardware computing components such asnetwork and media interfaces, non-transitory computer-readable storage(memory), and processors for executing instructions that may be storedin memory.

Evolving wireless technologies are able to provide greater bandwidth,thereby increasing capacity and allowing for enhanced services. Themobile device 1 a may include the capability for a simultaneous datacall (also referred to as a packet service call) while a voice call(also referred to as a circuit service call) is in progress. Inparticular, the mobile device 1 a may be a cellular phone, a smartphone, or any other portable wireless device that is capable ofsupporting a two-way real-time voice call (e.g., circuit service call)simultaneous with a data communications channel (e.g., packet servicecall). The mobile devices 1 b-c may be a similar communications devicethat has the capability of supporting a call for the party to conduct avoice conversation with the user of the mobile device 1 a, simultaneouswith a data channel that lets the mobile device 1 b-c receive sharingapplication data from the mobile device 1 a and then interact with thedevice 1 a through the visual menu.

The mobile device 1 a may communicate with mobile devices 1 b-c througha communications network 25, in accordance with any technology suitablefor mobile communications such as General Packet Radio Service (GPRS),Global Systems for Mobile (GSM), Code Division Multiple Access (CDMA),Universal Mobile Telecommunications System (UMTS), Integrated DispatchEnhanced Network (iDEN), 3G technologies, etc. In some embodiments, themobile device 1 a may also communicate with the mobile device 1 b-cthrough a network composed of several different types of networks thatcooperate with each other (e.g., via gateways) to establish and conducta call. For example, the communications network 25 may include, inaddition to the cellular network, traditional telephone lines andcircuit switches (Plain Old Telephone System, POTS), voice over wirelesslocal area network or WiFi (e.g., a IEEE 802.11 protocol), highfrequency systems (e.g., 900 MHz, 2.4 GHz, and 5.6 GHz communicationssystems), infrared, other relatively localized wireless communicationprotocol, or any combination thereof.

The mobile device 1 a may have a housing (not shown) in which areintegrated the components depicted in FIG. 1. The mobile device 1 a mayinclude a main processor 20 that may interact with communicationscircuitry 10, a geo-position locator 11, camera circuitry 12, storage13, memory 19, a speaker 20, a microphone 22, display 23, and userinterface 24. The various components of the mobile device 1 a may bedigitally interconnected and used or managed by a software stack beingexecuted by the main processor 20. Many of the components shown ordescribed here may be implemented as one or more dedicated hardwareunits and/or a programmed processor (software being executed by aprocessor, e.g., the main processor 20).

The main processor 20 may control the overall operation of the device 1a by performing some or all of the operations of one or moreapplications implemented on the mobile device 1, by executinginstructions for it (software code and data) that may be located in thestorage 13. The processor 20 may, for example, drive the display 23 andreceive user inputs through the user interface 24, which may beintegrated with the display 23 as part of a touch screen on the frontface of the mobile device 1 a. The main processor 20 may also performthe operations of providing the mobile device 1 b with interactiveinformation, such as information communicated through app share module18, while the user of mobile device 1 a is in telephonic communicationwith parties of other mobile devices 1 b-c.

Storage 13 may provide for data storage using nonvolatile solid statememory (e.g., flash storage) and/or a kinetic nonvolatile storage device(e.g., rotating magnetic disk drive). Storage 13 may further includeboth local storage and storage space on a remote server. Storage 13 maystore data, such as apps 14-15 (e.g., calendar app), status updates 16,and software components that control and manage, at a higher level, thedifferent functions of the mobile device 1. For instance, there may be atelephony application 17 that configures a built-in touch-sensitivedisplay to look like the keypad of a traditional telephone handset, andallows the user to enter a telephone number to be called, or select apreviously stored number from a telephone address book. The telephonyapplication 17 may register the media device as a cellular handset withthe nearest cellular base station (using the appropriate cellularcommunications protocols built into the mobile device 1). Theapplication may then proceed to allow the user to initiate or answer acall. Such application may further access the built-in microphone 22 anddrive the earpiece speaker 21 to enable the user to conduct a two-wayconversation during the call, as well as allow the user to invoke appshare module 18 based on some form of user input (e.g., selecting asetting or icon associated with the app share module 18). Storage 13 mayalso include a variety of apps 14-15 (e.g., calendar app, games app,etc.). Some apps may be share-enabled, which allow another device 1 b-cto communicate with mobile device 1 a and to allow sharing of the app aslong as both users have the same app and the app share module 18.Storage 13 may also include software for the mobile device operatingsystem 16, as well as operating system settings 16 a (e.g., standardoperating system settings as well as new operating system settingsspecific to the app share module 18). Storage 13 may also include theapp share module 18 that controls the app sharing functions, data, andcontrols.

In addition to storage 13, there may be memory 19 (also referred to asmain memory or program memory), which may provide access to stored codeand data that is being executed by the main processor 20. Memory 19 mayinclude solid state random access memory (RAM), static RAM, or dynamicRAM. There may be one or more processors (e.g., main processor 20) thatrun or execute various software programs, modules or sets ofinstructions (e.g., applications) that, while stored permanently in thestorage 13, may have been transferred to the memory 19 for execution toperform the various functions described above. It should be noted thatthese modules or instructions need not be implemented as separateprograms, but rather may be combined or otherwise rearranged in variouscombinations. In addition, the enablement of certain functions could bedistributed amongst two or more modules, and perhaps in combination withcertain hardware.

The mobile device 1 a may include communications circuitry 10.Communications circuitry 10 may include components that enable the abovementioned call and data channel transfer over a wireless link with anearby base station. For example, communications circuitry 10 mayinclude RF communications circuitry that is coupled to an antenna, sothat the user of the mobile device 1 a can place or receive a callthrough a wireless communications network. The RF communicationscircuitry may include a RF transceiver and a cellular baseband processorto enable the call through a cellular network. The communicationscircuitry 10 may also include Wi-Fi communications circuitry, which maybe used to establish a (e.g., concurrent) data channel with the mobiledevice 1 b. The Wi-Fi circuitry may also be used to conduct the callusing a voice over Internet Protocol (VoIP) connection, through awireless local area network (instead of a cellular network connection).

The mobile device 1 a may also include a geo-position locator 11, whichallows the mobile device 1 a to determine its current geographicposition. Such position may be obtained by a global positioning system(GPS). Using a GPS, the mobile device 1 a can ascertain its presentgeographic location (latitude, longitude, and altitude), by thedetection and processing of signals from geo-synchronous satellites. Themobile device 1 a may use other alternative systems to determine itsgeographic location, such as line-of-sight, dead reckoning, wirelesstriangulation, or an equivalent location determination system. Thegeo-position locator 11 may be used to determine the current geographiclocation of the mobile device 1. The user of the mobile device 1 a mayconfigure the device to share such current location data with the partythat the user places on hold.

The mobile device 1 a may also include a digital camera module 12 thatimplements the digital camera functionality of the mobile device 1. Thecamera module 12 may be used to capture digital still images and/orvideos that may be stored in the storage 13 and which may be shared withthe party of the mobile device 1 b while the party is on hold.

In operation, main processor 20 may perform normal functions of mobiledevice 1 a (e.g., communicate with and coordinate operations of display23, user interface 24, memory 19, microphone 22, speaker 21, cameramodule 12, geo-position locator 11, and communication circuitry 10).Other mobile devices 1 b-c may communicate with mobile device 1 athrough communications network 25. Mobile device 1 a may also store dataand software in storage 13, which stores apps 14-15, operating system16, operating system settings 16 a, telephony application 17, and appshare module 18. Other mobile devices 1 b-c can also enable the same appsharing functions through their respective operating system settings 16a of their respective operating system 16. When user of mobile device 1a is in phone communication with mobile device 1 b throughcommunications network 25, the users of both devices 1 a-b can invokeapp share module 18 to allow both users to share applications that areenabled for sharing (assuming both devices 1 a-b have and invoke thesame app and the app share enable module 18).

FIG. 2 is a diagram illustrating exemplary device architecture of anexemplary user device 200 that may be used in a system for sharingmobile applications between callers. In addition to communicationscircuitry 10, speaker 21, microphone 22, and user interface 24, thedevice architecture 200 may also include an audio coder-decoder (codec)26, a call processor 27, and an app share module processor 28. The callprocessor 27 and the app share module processor 28 may be implemented asone or more dedicated hardware units and/or a programmed processor(e.g., the main processor 20 executing software).

The audio codec 26 may act as an analog/digital interface to themicrophone and the speaker, by providing analog amplifiers, other analogsignal conditioning circuitry, and analog to digital and digital toanalog conversion circuitry for interfacing the analog acoustictransducer signals with digital audio processing algorithms running inthe codec 26 and in the call processor 27.

The call processor 27 may configure a built-in touch-sensitive screen(e.g., part of the user interface 24) to look like the keypad of atraditional telephony handset, thereby allowing the user to enter atelephone number to be called or to select a previously stored numberfrom a telephone address book. The call processor 27 may register thedevice 1 a as a cellular handset or user equipment with the nearestcellular base station (using the communications circuitry 10,appropriate cellular baseband processing, and communications protocolsthat are built into the device 1 a). The call processor 27 may thenproceed to enable the user to initiate or answer a call. Thereafter,during the call, an uplink audio signal may be routed from themicrophone 22 to the communications circuitry 10, while downlink audiosignal drives the speaker 21 (via audio codec 26) to enable the user toconduct a two-way conversation during the call. The call processor 27can also assist in allowing data sharing of the app share module 18 ofFIG. 1 with mobile device 1 b.

The app share module processor 28 enables the user of the mobile device1 a to select or indicate, via the user interface 24, what app is to beshared with the party that the user is communicating with, as well asestablishes a data channel with the mobile device 1 b through thecommunications circuitry 10. The data channel may then be used toprovide the selected interactive information (e.g., the selectedshare-enabled app) to the party, while the parties are on the call.

FIG. 3 is a block diagram that represents data sharing between userdevices 1 a-b in a system for sharing mobile applications betweencallers. Mobile devices 1 a-b may both include the same share-enabledapp 31, operating systems settings 16 a, and app share module 18.Share-enabled app 31 may include share data 31 a and app software anddata 31 b. Communications network 25 allows for various types ofcommunications between devices.

Mobile device 1 a may include one or more share-enabled apps 31, whichmay be any app that is executable on the mobile device 1 a and allowsfor sharing. These apps may include game apps, financial apps,productivity apps, organizations apps, etc. Share-enabled app 31 may beone of a special group of apps that are designed by the app developersto be capable of running in normal mode as well as app share mode.Alternatively, app share module 18 may permit some level of sharing(e.g., shared displays) even for apps that may not be specificallydeveloped for sharing. In such situations, data that runs the apps maybe synchronized. As such, when one app at a first user device ischanged, its display is changed. The same data regarding such changes isexchanged with the second app, and the display of the second app istherefore changed as well. In this way, the lowest bandwidth changes maybe required, rather than synchronizing screens through screen scrappingof pixels.

In app share mode, certain data may be made available to be sent throughthe app share module 18 through communications network 25 to a mobiledevice 1 b where that data is interpreted to run the share-enabled app31 on the mobile device 1 b in real-time, so that the mobile device 1 bcan see the share-enabled app running on mobile device 1 a. The data maybe sent through the cellular communication path as the user is talking.

Operating systems settings 16 a may include settings (described infurther detail with respect to FIG. 4) that allow the users of mobiledevices 1 a-b to enable app share mode as well as app share modefunctions. App share module 18 may allow for sharing of share-enabledapp 31, which may include a share data 31 a memory region and appsoftware and data 31 b memory region. App software and data 31 b maycontain the executable code of the app, as well as code to input andoutput share data that allows a remote user to see the sameshare-enabled app in real-time. Share data 31 a may include such data aswhich page the share-enabled app is on (e.g., page 3 of the app). Whenthis data is in share data 31 a, the page data 3 may be sent to themobile device 1 b through the app share module 18 over the communicationnetwork to the mobile device 1 b, which is also running the sameshare-enabled app such that the share-enabled app also jumps to page 3.Other share data 31 b may be field data (data stored in fields), such asdate, time, memo field, or any data that is user selectable by themobile device 1 a user. When this field data is in share data 31 a, thefield data 3 may be sent to the mobile device 1 b through the app sharemodule 18 and communication network to the mobile device 1 b, alsorunning the same share-enabled app so that that share-enabled app alsoinputs this field data to the app running on the mobile device 1 bshare-enabled app. There are many other forms of data that can be storedin share data 31 a for transmittal back and forth between mobile devices1 a and 1 b (e.g., links, graphics, any media files, rich media files,command strings, memo fields, text fields, equations, etc.). Inaddition, share module 18 may contain control features that not onlycontrols the share data 31 a between users but also allows the users todetermine various controls (e.g., who the sender or receiver is).Further, it should be noted that many users may be on a call at onetime, but only one user may be in control at a time. Also, it should benoted that users doing calls over voice over IP may have the sameshare-enabled options.

When operating system settings 16 a is enabled and app share module 18is invoked on both the mobile devices 1 a-b during a communications orphone call, share data 31 a of share-enabled app 31 may be exchangedbetween users. Any change made by the user designated as being incontrol of the share-enabled app 31 may be seen by the recipient userviewing their share-enabled app 31.

FIG. 4 is a diagram illustrating exemplary settings 400 of an operatingsystem on a user device that may be used with a system for sharingmobile applications between callers. Such operating system settings 400may include airplane mode 410, share enable mode 420, allow sharing 421,allow controlling only 422, allow both parties control 423, allow geolocation to be shared 424, all data types to be shared 425, allowlimited data types to be shared 426, control data only 426 a, all text426 b, all rich media 426 c, allow remote user to stream share 427, andallow multiple users 428.

Airplane mode 420 is an example of typical mobile device 1 a operatingsystem settings. Allow sharing 421 may be a share-enabled operatingsystem setting that enables sharing between users. Allow controllingonly 422 may be a share-enabled operating system setting that onlyallows the user of the device to control or send shared data for ashare-enabled app. Allow both parties control 423 is a setting that canallow either party, based upon control of the app share module 18 toshare app data and viewing. Allow geo-location to be shared 424 is asetting that allows the geo-location of either user to be shared.Geo-location is considered a security issue not only for the user whosedata may be collected, but also for the remote user.

All data types to be shared 425 is a setting that allows the user tobroadly provide rights of any data (except geo location if turned off)to be shared. Allow limited data types to be shared 426 is setting thatallows a user to limit what data types can be shared. This may besignificant, because the user may inadvertently have data stored thatthey might not want to share (e.g., family photographs). Once this isenabled, a sub menu of options may appear.

Control data only 426 a is a submenu item for Allow limited data typesto be shared 426 that allows that only allows control data (e.g., pages,menus, etc.) to be shared. This may be useful, for instance, for a userto perform a quick demonstration or training session for a remote userwithout exposing any personal data. All text 426 b is a submenu item forAllow limited data types to be shared 426 that allows the user to sharenot only control data but text data but limit all other media data. Allrich media 426 c is a submenu item for Allow limited data types to beshared 426 that allows users to share all rich media (e.g., audio files,photos, etc.). Allow remote user to stream share 427 is a setting thatallows a remote user to add another caller and share the share-enabledshare app. Allow multiple users 428 is a setting that allows as manyuser connected in a call to share data of share-enabled apps.

FIG. 5 is a flowchart illustrating an exemplary method 500 for sharingmobile applications between callers. The app sharing system containshardware and software to run a mobile device and a remote mobile device,using common share-enabled apps that are invoked through share-enabledoperating systems and controlled by an app share module. The appssharing system further allows for communications between mobile users.

Such a method 500 may include step 510, which provides a communicationssystem between at least two users of mobile devices. In step 520, appshare module software may be provided on each of the user devices. Instep 530, at least one share-enabled app may be provided that is storedon each user device. In step 540, operating system settings forshare-enabled apps may be provided for each user device.

In step 550, each user may be provided with mobile device callingcapability. In step 560, a first user of a mobile device may be allowedto call a second mobile device. In step 570, both users may be allowedto enable app sharing when each user selects the correct operatingsystem settings. In step 580, each user may be allowed to enable an appshare module where at least one user obtains control of sending appshare module data. In step 590, both users may be allowed to open theshare-enabled app. In step 591, the control user may be allowed tocontrol the share-enabled app on their mobile device. In step 592, thenon-control user may be allowed to see and changes on the non-controluser device made to the app by the control user on the control usermobile device.

FIG. 6 is a flowchart illustrating an alternative method 600 for sharingmobile applications between callers. Such a method 600 may include step610, in which activation of communications mode may be sent from a firstmobile device to a second mobile device. In step 520, each mobile devicemay also receive an activation of app sharing from the user. In step630, data may be shared between the two mobile devices.

FIG. 7 illustrates a mobile device architecture that may be utilized toimplement the various features and processes described herein.Architecture 700 can be implemented in any number of portable devicesincluding but not limited to smart phones, electronic tablets, andgaming devices. Architecture 700 as illustrated in FIG. 7 includesmemory interface 702, processors 704, and peripheral interface 706.Memory interface 702, processors 704 and peripherals interface 706 canbe separate components or can be integrated as a part of one or moreintegrated circuits. The various components can be coupled by one ormore communication buses or signal lines.

Processors 704 as illustrated in FIG. 7 is meant to be inclusive of dataprocessors, image processors, central processing unit, or any variety ofmulti-core processing devices. Any variety of sensors, external devices,and external subsystems can be coupled to peripherals interface 706 tofacilitate any number of functionalities within the architecture 700 ofthe exemplar mobile device. For example, motion sensor 710, light sensor712, and proximity sensor 714 can be coupled to peripherals interface706 to facilitate orientation, lighting, and proximity functions of themobile device. For example, light sensor 712 could be utilized tofacilitate adjusting the brightness of touch surface 746. Motion sensor710, which could be exemplified in the context of an accelerometer orgyroscope, could be utilized to detect movement and orientation of themobile device. Display objects or media could then be presentedaccording to a detected orientation (e.g., portrait or landscape).

Other sensors could be coupled to peripherals interface 706, such as atemperature sensor, a biometric sensor, or other sensing device tofacilitate corresponding functionalities. Location processor 715 (e.g.,a global positioning transceiver) can be coupled to peripheralsinterface 706 to allow for generation of geo-location data therebyfacilitating geo-positioning. An electronic magnetometer 716 such as anintegrated circuit chip could in turn be connected to peripheralsinterface 706 to provide data related to the direction of true magneticNorth whereby the mobile device could enjoy compass or directionalfunctionality. Camera subsystem 720 and an optical sensor 722 such as acharged coupled device (CCD) or a complementary metal-oxidesemiconductor (CMOS) optical sensor can facilitate camera functions suchas recording photographs and video clips.

Communication functionality can be facilitated through one or morecommunication subsystems 724, which may include one or more wirelesscommunication subsystems. Wireless communication subsystems 724 caninclude 802.x or Bluetooth transceivers as well as optical transceiverssuch as infrared. Wired communication system can include a port devicesuch as a Universal Serial Bus (USB) port or some other wired portconnection that can be used to establish a wired coupling to othercomputing devices such as network access devices, personal computers,printers, displays, or other processing devices capable of receiving ortransmitting data. The specific design and implementation ofcommunication subsystem 724 may depend on the communication network ormedium over which the device is intended to operate. For example, adevice may include wireless communication subsystem designed to operateover a global system for mobile communications (GSM) network, a GPRSnetwork, an enhanced data GSM environment (EDGE) network, 802.xcommunication networks, code division multiple access (CDMA) networks,or Bluetooth networks. Communication subsystem 724 may include hostingprotocols such that the device may be configured as a base station forother wireless devices. Communication subsystems can also allow thedevice to synchronize with a host device using one or more protocolssuch as TCP/IP, HTTP, or UDP.

Audio subsystem 726 can be coupled to a speaker 728 and one or moremicrophones 730 to facilitate voice-enabled functions. These functionsmight include voice recognition, voice replication, or digitalrecording. Audio subsystem 726 in conjunction may also encompasstraditional telephony functions.

I/O subsystem 740 may include touch controller 742 and/or other inputcontroller(s) 744. Touch controller 742 can be coupled to a touchsurface 746. Touch surface 746 and touch controller 742 may detectcontact and movement or break thereof using any of a number of touchsensitivity technologies, including but not limited to capacitive,resistive, infrared, or surface acoustic wave technologies. Otherproximity sensor arrays or elements for determining one or more pointsof contact with touch surface 746 may likewise be utilized. In oneimplementation, touch surface 746 can display virtual or soft buttonsand a virtual keyboard, which can be used as an input/output device bythe user.

Other input controllers 744 can be coupled to other input/controldevices 748 such as one or more buttons, rocker switches, thumb-wheels,infrared ports, USB ports, and/or a pointer device such as a stylus. Theone or more buttons (not shown) can include an up/down button for volumecontrol of speaker 728 and/or microphone 730. In some implementations,device 700 can include the functionality of an audio and/or videoplayback or recording device and may include a pin connector fortethering to other devices.

Memory interface 702 can be coupled to memory 750. Memory 750 caninclude high-speed random access memory or non-volatile memory such asmagnetic disk storage devices, optical storage devices, or flash memory.Memory 750 can store operating system 752, such as Darwin, RTXC, LINUX,UNIX, OS X, ANDROID, WINDOWS, or an embedded operating system such asVxWorks. Operating system 752 may include instructions for handlingbasic system services and for performing hardware dependent tasks. Insome implementations, operating system 752 can include a kernel.

Memory 750 may also store communication instructions 754 to facilitatecommunicating with other mobile computing devices or servers.Communication instructions 754 can also be used to select an operationalmode or communication medium for use by the device based on a geographiclocation, which could be obtained by the GPS/Navigation instructions768. Memory 750 may include graphical user interface instructions 756 tofacilitate graphic user interface processing such as the generation ofan interface; sensor processing instructions 758 to facilitatesensor-related processing and functions; phone instructions 760 tofacilitate phone-related processes and functions; electronic messaginginstructions 762 to facilitate electronic-messaging related processesand functions; web browsing instructions 764 to facilitate webbrowsing-related processes and functions; media processing instructions766 to facilitate media processing-related processes and functions;GPS/Navigation instructions 768 to facilitate GPS and navigation-relatedprocesses, camera instructions 770 to facilitate camera-relatedprocesses and functions; and instructions 772 for any other applicationthat may be operating on or in conjunction with the mobile computingdevice. Memory 750 may also store other software instructions forfacilitating other processes, features and applications, such asapplications related to navigation, social networking, location-basedservices or map displays.

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. Memory 750 can includeadditional or fewer instructions. Furthermore, various functions of themobile device may be implemented in hardware and/or in software,including in one or more signal processing and/or application specificintegrated circuits.

Certain features may be implemented in a computer system that includes aback-end component, such as a data server, that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthe foregoing. The components of the system can be connected by any formor medium of digital data communication such as a communication network.Some examples of communication networks include LAN, WAN and thecomputers and networks forming the Internet. The computer system caninclude clients and servers. A client and server are generally remotefrom each other and typically interact through a network. Therelationship of client and server arises by virtue of computer programsrunning on the respective computers and having a client-serverrelationship to each other.

One or more features or steps of the disclosed embodiments may beimplemented using an API that can define on or more parameters that arepassed between a calling application and other software code such as anoperating system, library routine, function that provides a service,that provides data, or that performs an operation or a computation. TheAPI can be implemented as one or more calls in program code that send orreceive one or more parameters through a parameter list or otherstructure based on a call convention defined in an API specificationdocument. A parameter can be a constant, a key, a data structure, anobject, an object class, a variable, a data type, a pointer, an array, alist, or another call. API calls and parameters can be implemented inany programming language. The programming language can define thevocabulary and calling convention that a programmer will employ toaccess functions supporting the API. In some implementations, an APIcall can report to an application the capabilities of a device runningthe application, such as input capability, output capability, processingcapability, power capability, and communications capability.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. The descriptions are not intended to limit the scope of theinvention to the particular forms set forth herein. Thus, the breadthand scope of a preferred embodiment should not be limited by any of theabove-described exemplary embodiments. It should be understood that theabove description is illustrative and not restrictive. To the contrary,the present descriptions are intended to cover such alternatives,modifications, and equivalents as may be included within the spirit andscope of the invention as defined by the appended claims and otherwiseappreciated by one of ordinary skill in the art. The scope of theinvention should, therefore, be determined not with reference to theabove description, but instead should be determined with reference tothe appended claims along with their full scope of equivalents.

What is claimed is:
 1. A method for sharing mobile applicationinteractions between callers, the method comprising: initiating acommunication call connection between a first mobile device and a secondmobile device; receiving a selection at the first mobile device thatidentifies an application previously enabled for interaction sharing;and executing instructions stored in memory, wherein execution of theinstructions by a processor: executes the application on the firstmobile device during the call connection, triggers execution of theapplication on the second mobile device during the call connection,receives an application interaction input at the first mobile deviceduring execution of the application on the first mobile device andduring the call connection, performs an application operation via theapplication at the first mobile device during the call connection, theapplication operation responsive to the application interaction input,and transmits interaction data corresponding to the applicationinteraction input to the second mobile device, thereby triggeringperformance of the application operation via the application at thesecond mobile device during the call connection.
 2. The method of claim1, further comprising receiving settings at the first mobile device,wherein the received settings enable interaction sharing for theapplication with at least the second mobile device.
 3. The method ofclaim 1, wherein the application operation includes at least one ofdriving a display or providing information.
 4. The method of claim 1,wherein execution of the instructions by the processor furtheridentifies that the second mobile device has enabled interaction sharingfor the application.
 5. The method of claim 1, wherein execution of theinstructions by the processor further: receives secondary interactiondata from the second mobile device, the secondary interaction datacorresponding to a secondary application interaction input received atthe second mobile device, and performs a secondary application operationvia the application at the first mobile device during the callconnection, the secondary application operation responsive to thesecondary application interaction input.
 6. The method of claim 1,wherein execution of the instructions by the processor further transmitsgeolocation information identifying a location of the first mobiledevice to the second mobile device.
 7. The method of claim 1, whereintransmitting the interaction data to the second mobile device includestransmitting one or more types of data to the second mobile device. 8.The method of claim 1, wherein transmitting the interaction data to thesecond mobile device includes streaming data transfer.
 9. The method ofclaim 1, wherein execution of the instructions by the processor furthertransmits the interaction data corresponding to the applicationinteraction to one or more additional devices other than the firstmobile device and the second mobile device.
 10. An apparatus for sharingmobile application interactions between callers, the apparatuscomprising: a communication transceiver that initiates a communicationcall connection with a second mobile device; a user interface thatreceives a selection that identifies an application previously enabledfor interaction sharing; a memory; and a processor coupled to the memoryand to the user interface and to the communication transceiver, whereinexecution of instructions stored in the memory by the processor:executes the application via the processor during the call connection,triggers execution of the application on the second mobile device duringthe call connection, receives an application interaction input at theuser interface during execution of the application via the processor andduring the call connection, performs an application operation via theapplication by the processor during the call connection, the applicationoperation responsive to the application interaction input; and transmitsinteraction data corresponding to the application interaction input tothe second mobile device, thereby triggering performance of theapplication operation via the application at the second mobile deviceduring the call connection.
 11. The apparatus of claim 10, wherein theuser interface further receives settings , wherein the received settingsenable interaction sharing of the at least the second mobile device. 12.The apparatus of claim 10, wherein the application operation includes atleast one of driving a display or providing information.
 13. Theapparatus of claim 10, wherein execution of the instructions by theprocessor further identifies that the second mobile device has enabledinteraction sharing for the application.
 14. The apparatus of claim 10,wherein execution of the instructions by the processor further: receivessecondary interaction data from the second mobile device, the secondaryinteraction data corresponding to a secondary application interactioninput received at the second mobile device, and performs a secondaryapplication operation via the application by the processor during thecall connection, the secondary application operation responsive to thesecondary application interaction input.
 15. The apparatus of claim 10,wherein execution of the instructions by the processor further transmitsgeolocation information identifying a location of the apparatus to thesecond mobile device.
 16. The apparatus of claim 10, whereintransmitting the interaction data to the second mobile device includestransmitting one or more types of data to the second mobile device. 17.The apparatus of claim 10, wherein transmitting the interaction data tothe second mobile device includes streaming data transfer.
 18. Theapparatus of claim 10, wherein execution of the instructions by theprocessor further transmits the interaction data corresponding to theapplication interaction to one or more additional devices other than theapparatus and the second mobile device.
 19. A non-transitorycomputer-readable storage medium, having embodied thereon a programexecutable by a processor to perform a method for sharing mobileapplication interactions between callers, the method comprising:initiating a communication call connection between a first mobile deviceand a second mobile device; receiving a selection at the first mobiledevice that identifies an application previously enabled for interactionsharing; executing the application on the first mobile device during thecall connection; triggering execution of the application on the secondmobile device during the call connection; receiving an applicationinteraction input at the first mobile device during execution of theapplication on the first mobile device and during the call connection;performing an application operation via the application at the firstmobile device during the call connection, the application operationresponsive to the application interaction input; and transmittinginteraction data corresponding to the application interaction input tothe second mobile device, thereby triggering performance of theapplication operation via the application at the second mobile deviceduring the call connection.